package dashboard

import (
	"github.com/gin-gonic/gin"
	log "github.com/sirupsen/logrus"
	"oa-rest/common"
)

// ImportantItem 统一响应结构
type ImportantItem struct {
	Type int `json:"type"` // 区分是消息还是任务，1：消息；2；任务
	Data interface{}
}

// getImportantListHandler 重要消息合并接口
func getImportantListHandler(c *gin.Context) {
	var res common.Response
	username := c.GetString("username")
	if username == "" {
		res.Format(c, "无法获取username")
		return
	}
	// 重要事项分为两类：1.消息；2.任务
	// 1.获取消息列表
	msgs, err := getMessagesByReceiver(username)
	if err != nil {
		res.Format(c, err.Error())
		return
	}
	// 2.获取流程列表
	tasks, err := getTasksByReceiver(username)
	if err != nil {
		res.Format(c, err.Error())
		return
	}
	log.Error(len(tasks), tasks)

	respData := map[string]interface{}{
		"taskCount": len(tasks),
		"tasks":     tasks,
		"msgs":      msgs,
	}

	res.Data = respData
	res.Format(c)
}

func RegisterRoutes(group *gin.RouterGroup) {
	group.GET("/dashboard/getImportantList", getImportantListHandler)
}
